#ifndef ITEM_DATA_H
#define ITEM_DATA_H

#include "boost/shared_ptr.hpp"

#include "SFML/Graphics.hpp"

#include "AmmoType.h"
#include "ItemType.h"
#include "Named.h"
#include "AnimatedSprite.h"

class ItemData : public Named
{
public:
	ItemData(AnimatedSpritePtr icon);
	ItemData(AnimatedSpritePtr icon, const float weight);
	ItemData(AnimatedSpritePtr icon, const float weight, const int value);
    ItemData(AnimatedSpritePtr icon, const float weight, const int value, const int maxStack);
	
    ItemType getType() const;
    boost::shared_ptr<void> getSpecificData() const;
    int getMaxStack() const;
    float getWeight() const;
    void setWeight(const float weight);
    void setValue( const int value);
    int getValue() const;
    AnimatedSpritePtr getIcon() const;  
private:
	ItemType type;
    boost::shared_ptr<void> specificData;
	int    maxStack;
	int     value;
	float   weight;
    AnimatedSpritePtr icon;
};


#endif /* ITEMDATA_H*/